home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume7 / nethack3 / patch4k < prev    next >
Encoding:
Internet Message Format  |  1989-10-02  |  49.0 KB

  1. Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v08i047:  NetHack3 -  display oriented dungeons & dragons (Ver. 3.0), Patch4k
  5. Message-ID: <4637@tekred.CNA.TEK.COM>
  6. Date: 29 Sep 89 21:16:32 GMT
  7. Sender: nobody@tekred.CNA.TEK.COM
  8. Lines: 840
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
  12. Posting-number: Volume 8, Issue 47
  13. Archive-name: NetHack3/Patch4k
  14. Patch-To: NetHack3: Volume 7, Issue 56-93
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then unpack
  18. # it by saving it into a file and typing "sh file".  To overwrite existing
  19. # files, type "sh file -c".  You can also feed this as standard input via
  20. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  21. # will see the following message at the end:
  22. #        "End of archive 11 (of 11)."
  23. # Contents:  src/monst.c2
  24. # Wrapped by billr@saab on Fri Sep 29 13:11:40 1989
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f 'src/monst.c2' -a "${1}" != "-c" ; then 
  27.   mv -f src/monst.c2 src/monst.c2.orig
  28. fi
  29. echo shar: Extracting \"'src/monst.c2'\" \(47579 characters\)
  30. sed "s/^X//" >'src/monst.c2' <<'END_OF_FILE'
  31. X/* horrible kludge alert: splitting monst.o into two parts depends on
  32. X   the two files monst1.o and monst2.o being loaded consecutively into
  33. X   memory; _mons2 must immediately follow mons. Needless to say,
  34. X   don't depend on this unless you have to (I had to; my compiler was
  35. X   too much of a memory pig to produce monst.o in a measly 2 megabytes
  36. X   of memory -- ERS */
  37. X
  38. X#ifndef SPLITMON_1
  39. X#ifdef SPLITMON_2
  40. Xstruct permonst _mons2[] = {
  41. X#endif
  42. X/*      giant Humanoids */
  43. X        { "ettin", S_GIANT, 10, 12, 3, 0, 0, (G_GENO | 1),
  44. X          { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  45. X            NO_ATTK, NO_ATTK, NO_ATTK },
  46. X          50, 500, 0, MS_GRUNT, M1_BIG | M1_ANIMAL | M1_HUMANOID | M1_COLLECT,
  47. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
  48. X        { "giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_NOGEN | 1),
  49. X          { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  50. X          75, 750, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_COLLECT | M1_JEWELS,
  51. X           M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(HI_MON) },
  52. X        { "stone giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_SGROUP | 1),
  53. X          { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  54. X          75, 750, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_COLLECT | M1_JEWELS,
  55. X           M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(GRAY) },
  56. X        { "hill giant", S_GIANT, 8, 10, 6, 0, -2, (G_GENO | G_SGROUP | 1),
  57. X          { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  58. X          70, 700, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_COLLECT | M1_JEWELS,
  59. X          M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(BROWN) },
  60. X        { "fire giant", S_GIANT, 9, 12, 4, 5, 2, (G_GENO | G_SGROUP | 1),
  61. X          { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  62. X          75, 750, 0, MS_SILENT,
  63. X          M1_BIG | M1_HUMANOID | M1_FIRE_RES | M1_COLLECT | M1_JEWELS,
  64. X          M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(YELLOW) },
  65. X        { "frost giant", S_GIANT, 10, 12, 3, 10, -3, (G_GENO | G_SGROUP | 1),
  66. X          { { AT_WEAP, AD_PHYS, 2, 12 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  67. X          75, 750, 0, MS_SILENT,
  68. X          M1_BIG | M1_HUMANOID | M1_COLD_RES | M1_COLLECT | M1_JEWELS,
  69. X          M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(WHITE) },
  70. X        { "titan", S_GIANT, 16, 18, -3, 70, 9, 1,
  71. X          { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_MAGC, AD_SPEL, 0, 0 },
  72. X            NO_ATTK, NO_ATTK, NO_ATTK },
  73. X          90, 900, 0, MS_SILENT, M1_BIG | M1_FLY | M1_HUMANOID | M1_MAGIC |
  74. X          M1_COLLECT, M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(MAGENTA) },
  75. X        { "minotaur", S_GIANT, 15, 15, 6, 0, 0, (G_GENO | G_NOGEN),
  76. X          { { AT_CLAW, AD_PHYS, 3, 10 }, { AT_CLAW, AD_PHYS, 3, 10 },
  77. X            AT_BUTT, AD_PHYS, 2, 8, NO_ATTK, NO_ATTK},
  78. X          70, 700, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_HUMANOID,
  79. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
  80. X        { "owlbear", S_GIANT, 5, 12, 5, 0, 0, (G_GENO | 3),
  81. X          { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  82. X            { AT_HUGS, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK },
  83. X          70, 700, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_HUMANOID,
  84. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
  85. X/*      Invisible stalker       */
  86. X        { "stalker", S_STALKER, 8, 12, 3, 0, 0, (G_GENO | 3),
  87. X          { { AT_CLAW, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  88. X          40, 400, 0, MS_SILENT,
  89. X          M1_BIG | M1_ANIMAL | M1_FLY | M1_SEE_INVIS | M1_STALK,
  90. X          M2_WANDER | M2_HOSTILE | M2_STRONG, C(WHITE) },
  91. X/*      Jellies         */
  92. X        { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
  93. X          { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  94. X          2, 20, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS |
  95. X          M1_POIS_RES | M1_COLD_RES,
  96. X          M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(BLUE) },
  97. X        { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
  98. X          { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  99. X          2, 20, 0, MS_SILENT,
  100. X          M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS | M1_STON_RES,
  101. X          M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(GREEN) },
  102. X        { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
  103. X          { { AT_ENGL, AD_ACID, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  104. X          2, 20, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS |
  105. X          M1_STON_RES, M2_HOSTILE | M2_OMNIVORE | M2_NOLIMBS | M2_AMORPHOUS,
  106. X      C(HI_GOLD)},
  107. X/*      Kops    */
  108. X#ifdef KOPS
  109. X        { "Keystone Kop", S_KOP, 1, 6, 7, 10, 9, (G_GENO | G_LGROUP | G_NOGEN),
  110. X          { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  111. X          20, 200, 0, MS_ARREST, M1_HUMANOID | M1_COLLECT,
  112. X          M2_HUMAN | M2_WANDER | M2_HOSTILE, C(BLUE) },
  113. X        { "Kop Sergeant", S_KOP, 2, 8, 6, 10, 10, (G_GENO | G_SGROUP | G_NOGEN),
  114. X          { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  115. X          20, 200, 0, MS_ARREST, M1_HUMANOID | M1_COLLECT,
  116. X          M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(BLUE) },
  117. X        { "Kop Lieutenant", S_KOP, 3, 10, 5, 20, 11, (G_GENO | G_NOGEN),
  118. X          { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  119. X          20, 200, 0, MS_ARREST, M1_HUMANOID | M1_COLLECT,
  120. X          M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(BLUE) },
  121. X        { "Kop Kaptain", S_KOP, 4, 12, 4, 20, 12, (G_GENO | G_NOGEN),
  122. X          { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  123. X          20, 200, 0, MS_ARREST, M1_HUMANOID | M1_COLLECT,
  124. X          M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(BLUE) },
  125. X#endif
  126. X/*      Leprechauns     */
  127. X        { "leprechaun", S_LEPRECHAUN, 5, 15, 8, 20, 0, (G_GENO | 4),
  128. X          { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_SGLD, 0, 0 },
  129. X            NO_ATTK, NO_ATTK, NO_ATTK },
  130. X          30, 300, 0, MS_LAUGH, M1_HUMANOID | M1_TPORT | M1_GREEDY,
  131. X          M2_HOSTILE, C(GREEN) },
  132. X/*      Mummies         */
  133. X        { "kobold mummy", S_MUMMY, 3, 8, 6, 20, -2, (G_GENO | G_NOCORPSE | 1),
  134. X          { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  135. X          10, 100, 0, MS_SILENT,
  136. X          M1_HUMANOID | M1_UNDEAD | M1_POIS, M2_HOSTILE, C(BROWN) },
  137. X        { "gnome mummy", S_MUMMY, 4, 10, 6, 20, -3, (G_GENO | G_NOCORPSE | 1),
  138. X          { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  139. X          10, 100, 0, MS_SILENT,
  140. X          M1_HUMANOID | M1_UNDEAD | M1_POIS, M2_HOSTILE, C(BROWN) },
  141. X        { "orc mummy", S_MUMMY, 5, 10, 5, 20, -4, (G_GENO | G_NOCORPSE | 1),
  142. X          { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  143. X          15, 150, 0, MS_SILENT, M1_HUMANOID | M1_UNDEAD | M1_POIS |
  144. X          M1_GREEDY | M1_JEWELS, M2_HOSTILE | M2_ORC, C(BROWN) },
  145. X        { "elf mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  146. X          { { AT_CLAW, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  147. X          35, 350, 0, MS_SILENT, M1_HUMANOID | M1_UNDEAD | M1_POIS | M1_SLEE_RES,
  148. X          M2_HOSTILE | M2_ELF, C(BROWN) },
  149. X        { "human mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  150. X          { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  151. X            NO_ATTK, NO_ATTK, NO_ATTK },
  152. X          40, 400, 0, MS_SILENT,
  153. X          M1_HUMANOID | M1_UNDEAD | M1_POIS, M2_HOSTILE, C(BROWN) },
  154. X        { "ettin mummy", S_MUMMY, 7, 12, 4, 30, -6, (G_GENO | G_NOCORPSE | 1),
  155. X          { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_PHYS, 2, 6 },
  156. X            NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_SILENT,
  157. X          M1_HUMANOID | M1_UNDEAD | M1_POIS | M1_BIG,
  158. X          M2_HOSTILE | M2_STRONG, C(BROWN) },
  159. X        { "giant mummy", S_MUMMY, 8, 14, 3, 30, -7, (G_GENO | G_NOCORPSE | 1),
  160. X          { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  161. X            NO_ATTK, NO_ATTK, NO_ATTK }, 75, 750, 0, MS_SILENT,
  162. X          M1_HUMANOID | M1_UNDEAD | M1_POIS | M1_BIG | M1_JEWELS,
  163. X          M2_HOSTILE | M2_GIANT | M2_STRONG, C(BROWN) },
  164. X/*      Nymphs  */
  165. X        { "wood nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  166. X          { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  167. X            NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE,
  168. X          M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM, M2_HOSTILE, C(GREEN) },
  169. X        { "water nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  170. X          { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  171. X            NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE,
  172. X          M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM | M1_SWIM,
  173. X          M2_HOSTILE, C(BLUE) },
  174. X        { "mountain nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  175. X          { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  176. X            NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE,
  177. X          M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM, M2_HOSTILE, C(BROWN) },
  178. X/*      Ogres   */
  179. X        { "ogre", S_OGRE, 5, 10, 5, 0, -3, (G_SGROUP | G_GENO | 1),
  180. X          { { AT_WEAP, AD_PHYS, 2, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  181. X          60, 500, 0, MS_GRUNT,
  182. X          M1_BIG | M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  183. X          M2_STRONG, C(BROWN) },
  184. X        { "ogre lord", S_OGRE, 7, 12, 3, 30, -5, (G_GENO | 2),
  185. X          { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  186. X          70, 700, 0, MS_GRUNT,
  187. X          M1_BIG | M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT | M1_LORD,
  188. X          M2_STRONG, C(BROWN) },
  189. X        { "ogre king", S_OGRE, 7, 14, 4, 60, -7, (G_GENO | 2),
  190. X          { { AT_WEAP, AD_PHYS, 3, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  191. X          70, 750, 0, MS_GRUNT,
  192. X          M1_BIG | M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT | M1_PRINCE,
  193. X          M2_STRONG, C(MAGENTA) },
  194. X/*      Puddings */
  195. X        { "gray ooze", S_PUDDING, 3, 1, 8, 0, 0, (G_GENO | 2),
  196. X          { { AT_BITE, AD_RUST, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  197. X          50, 500, 0, MS_SILENT, M1_NOEYES | M1_NOHANDS | M1_POIS_RES, 
  198. X          M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(GRAY) },
  199. X        { "brown pudding", S_PUDDING, 5, 3, 8, 0, 0, (G_GENO | 1),
  200. X          { { AT_BITE, AD_DCAY, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  201. X          50, 500, 0, MS_SILENT, M1_NOEYES | M1_NOHANDS | M1_POIS_RES |
  202. X          M1_COLD_RES | M1_ELEC_RES,
  203. X          M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(BROWN) },
  204. X        { "black pudding", S_PUDDING, 10, 6, 6, 0, 0, (G_GENO | 1),
  205. X          { { AT_BITE, AD_RUST, 3, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  206. X          50, 500, 0, MS_SILENT, M1_NOEYES | M1_NOHANDS | M1_POIS_RES |
  207. X          M1_COLD_RES | M1_ELEC_RES,
  208. X          M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(BLACK) },
  209. X/*      Quantum Mechanics       */
  210. X        { "quantum mechanic", S_QUANTMECH, 7, 12, 3, 10, 0, (G_GENO | 3),
  211. X          { { AT_CLAW, AD_TLPT, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  212. X          2, 20, 0, MS_SILENT, M1_ANIMAL | M1_HUMANOID | M1_POIS, M2_HOSTILE,
  213. X      C(CYAN)},
  214. X        { "mad scientist", S_QUANTMECH, 8, 12, 2, 20, 0, (G_GENO | 2),
  215. X          { { AT_WEAP, AD_SLEE, 1, 8 }, { AT_CLAW, AD_DREN, 0, 0 },
  216. X            NO_ATTK, NO_ATTK, NO_ATTK },
  217. X          35, 200, 0, MS_SILENT, M1_HUMANOID | M1_POIS | M1_COLLECT,
  218. X          M2_HOSTILE,
  219. X      C(MAGENTA)},
  220. X/*      Rust Monster    */
  221. X        { "rust monster", S_RUSTMONST, 5, 18, 2, 0, 0, (G_GENO | 2),
  222. X          { { AT_TUCH, AD_RUST, 0, 0 }, { AT_TUCH, AD_RUST, 0, 0 }, NO_ATTK,
  223. X            NO_ATTK, NO_ATTK },
  224. X          50, 500, 0, MS_SILENT, M1_SWIM | M1_ANIMAL | M1_NOHANDS, M2_HOSTILE,
  225. X      C(BROWN)},
  226. X/*      Snakes  */
  227. X        { "garter snake", S_SNAKE, 1, 8, 8, 0, 0, (G_LGROUP | G_GENO | 1),
  228. X          { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  229. X          5, 60, 0, MS_HISS,
  230. X          M1_VSMALL | M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_EGGS, M2_CONCEAL |
  231. X          M2_NOLIMBS | M2_CARNIVORE, C(GREEN) },
  232. X        { "snake", S_SNAKE, 4, 15, 3, 0, 0, (G_GENO | 2),
  233. X          { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  234. X          10, 80, 0, MS_HISS, M1_VSMALL | M1_SWIM | M1_ANIMAL | M1_NOHANDS |
  235. X          M1_EGGS | M1_POIS | M1_POIS_RES, M2_HOSTILE | M2_CONCEAL |
  236. X          M2_NOLIMBS | M2_CARNIVORE, C(GREEN) },
  237. X        { "pit viper", S_SNAKE, 6, 15, 2, 0, 0, (G_GENO | 1),
  238. X          { { AT_BITE, AD_DRST, 1, 4 }, { AT_BITE, AD_DRST, 1, 4 },
  239. X            NO_ATTK, NO_ATTK, NO_ATTK }, 5, 60, 0, MS_HISS, M1_VSMALL |
  240. X          M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
  241. X          M2_HOSTILE | M2_CONCEAL | M2_NOLIMBS | M2_CARNIVORE, C(GREEN) },
  242. X        { "cobra", S_SNAKE, 6, 18, 2, 0, 0, (G_GENO | 1),
  243. X          { { AT_BITE, AD_DRST, 2, 4 }, { AT_SPIT, AD_BLND, 0, 0 },
  244. X            NO_ATTK, NO_ATTK, NO_ATTK }, 15, 100, 0, MS_HISS, M1_VSMALL |
  245. X          M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
  246. X          M2_HOSTILE | M2_CONCEAL | M2_NOLIMBS | M2_CARNIVORE, C(GREEN) },
  247. X        { "python", S_SNAKE, 6, 3, 5, 0, 0, (G_GENO | 1),
  248. X          { { AT_BITE, AD_DRST, 1, 4 }, { AT_HUGS, AD_WRAP, 2, 4 },
  249. X            NO_ATTK, NO_ATTK, NO_ATTK }, 15, 100, 0, MS_HISS, M1_BIG |
  250. X          M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
  251. X          M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GREEN) },
  252. X        { "water moccasin", S_SNAKE, 4, 15, 3, 0, 0,
  253. X          (G_GENO | G_NOGEN | G_LGROUP),
  254. X          { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  255. X          10, 100, 0, MS_HISS, M1_VSMALL | M1_SWIM | M1_ANIMAL | M1_NOHANDS |
  256. X          M1_EGGS | M1_POIS | M1_POIS_RES, M2_HOSTILE | M2_CONCEAL |
  257. X          M2_NOLIMBS | M2_CARNIVORE, C(GREEN) },
  258. X/*      Trolls  */
  259. X        { "troll", S_TROLL, 7, 12, 4, 0, -3, (G_GENO | 2),
  260. X          { { AT_CLAW, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 4, 2 },
  261. X            { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  262. X          40, 400, 0, MS_GRUNT, M1_BIG | M1_HUMANOID | M1_REGEN | M1_STALK,
  263. X          M2_STRONG | M2_CARNIVORE | M2_HOSTILE, C(BROWN) },
  264. X        { "ice troll", S_TROLL, 9, 10, 2, 20, -3, (G_GENO | 1),
  265. X          { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_COLD, 2, 6 },
  266. X            { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  267. X          40, 300, 0, MS_GRUNT,
  268. X          M1_BIG | M1_HUMANOID | M1_COLD_RES | M1_REGEN | M1_STALK,
  269. X          M2_STRONG | M2_CARNIVORE | M2_HOSTILE, C(WHITE) },
  270. X        { "rock troll", S_TROLL, 9, 12, 0, 0, -3, (G_GENO | 1),
  271. X          { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  272. X            { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  273. X          40, 300, 0, MS_GRUNT,
  274. X          M1_BIG | M1_HUMANOID | M1_REGEN | M1_STALK | M1_COLLECT,
  275. X          M2_STRONG | M2_CARNIVORE | M2_HOSTILE, C(BROWN) },
  276. X        { "water troll", S_TROLL, 11, 14, 4, 40, -3, (G_NOGEN | G_GENO),
  277. X          { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  278. X            { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  279. X          40, 400, 0, MS_GRUNT,
  280. X          M1_BIG | M1_SWIM | M1_HUMANOID | M1_REGEN | M1_STALK,
  281. X          M2_STRONG | M2_CARNIVORE | M2_HOSTILE, C(BLUE) },
  282. X#ifdef TOLKIEN
  283. X        { "Olog-hai", S_TROLL, 13, 12, -4, 0, -7, (G_GENO | 1),
  284. X          { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  285. X            { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  286. X          40, 400, 0, MS_GRUNT,
  287. X          M1_BIG | M1_HUMANOID | M1_REGEN | M1_STALK | M1_COLLECT,
  288. X          M2_STRONG | M2_CARNIVORE | M2_HOSTILE, C(BROWN) },
  289. X#endif
  290. X/*      Umber Hulk      */
  291. X        { "umber hulk", S_UMBER, 9, 6, 2, 25, 0, (G_GENO | 2),
  292. X          { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  293. X            { AT_BITE, AD_PHYS, 2, 5 }, { AT_GAZE, AD_CONF, 0, 0 }, NO_ATTK },
  294. X          50, 500, 0, MS_SILENT, M1_BIG, M2_STRONG | M2_TUNNEL | M2_CARNIVORE,
  295. X      C(BROWN)},
  296. X/*      Vampires        */
  297. X        { "vampire", S_VAMPIRE, 10, 12, 1, 25, -8, (G_GENO | 1),
  298. X          { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  299. X            NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE,
  300. X          M1_FLY | M1_HUMANOID | M1_UNDEAD | M1_POIS | M1_REGEN |
  301. X          M1_STALK, M2_HOSTILE | M2_STRONG | M2_NASTY, C(HI_MON) },
  302. X        { "vampire lord", S_VAMPIRE, 12, 14, 0, 50, -9, (G_GENO | 1),
  303. X          { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_BITE, AD_DRLI, 1, 8 },
  304. X            NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE,
  305. X          M1_FLY | M1_HUMANOID | M1_UNDEAD | M1_POIS | M1_REGEN |
  306. X          M1_STALK | M1_LORD, M2_HOSTILE | M2_STRONG | M2_NASTY, C(HI_MON) },
  307. X        { "Vlad the Impaler", S_VAMPIRE, 14, 18, -3, 80, -10,
  308. X          (G_NOGEN | G_NOCORPSE | G_UNIQ),
  309. X          { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  310. X            NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, PL_NSIZ, MS_VAMPIRE,
  311. X          M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_UNDEAD | M1_POIS |
  312. X          M1_REGEN | M1_STALK | M1_PRINCE, 
  313. X          M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY, C(MAGENTA) },
  314. X/*      Wraiths         */
  315. X        { "barrow wight", S_WRAITH, 3, 12, 5, 5, -3, (G_GENO | G_NOCORPSE | 1),
  316. X          { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  317. X            { AT_WEAP, AD_DRLI, 0, 0 }, NO_ATTK, NO_ATTK }, 30, 0, 0, MS_SILENT,
  318. X          M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK | M1_COLLECT, 
  319. X          M2_HOSTILE, C(GRAY) },
  320. X        { "wraith", S_WRAITH, 6, 12, 4, 15, -6, (G_GENO | 2),
  321. X          { { AT_TUCH, AD_DRLI, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  322. X          30, 0, 0, MS_SILENT,
  323. X          M1_FLY | M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK, 
  324. X          M2_HOSTILE, C(BLACK) },
  325. X#ifdef TOLKIEN
  326. X        { "Nazgul", S_WRAITH, 13, 12, 0, 25, -17, (G_GENO | G_NOCORPSE | 1),
  327. X          { { AT_WEAP, AD_DRLI, 1, 4 }, { AT_BREA, AD_SLEE, 0, 0 },
  328. X            NO_ATTK, NO_ATTK, NO_ATTK }, 30, 0, 0, MS_SILENT,
  329. X          M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK | M1_COLLECT, 
  330. X          M2_STRONG | M2_HOSTILE, C(BLACK) },
  331. X#endif
  332. X/*      Xorn    */
  333. X        { "xorn", S_XORN, 8, 9,-2, 20, 0, (G_GENO | 1),
  334. X          { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  335. X            { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 4, 6 },
  336. X            NO_ATTK }, 70, 700, 0, MS_SILENT,
  337. X          M1_BIG | M1_WALLWALK | M1_FIRE_RES | M1_COLD_RES | M1_STON_RES,
  338. X          M2_HOSTILE | M2_STRONG | M2_THICK_HIDE, C(BROWN) },
  339. X/*      Yeti    */
  340. X        { "yeti", S_YETI, 5, 15, 6, 0, 0, (G_GENO | 2),
  341. X          { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  342. X            { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  343. X          70, 700, 0, MS_GROWL, M1_BIG | M1_ANIMAL | M1_HUMANOID | M1_COLD_RES,
  344. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) },
  345. X/*      Zombies         */
  346. X        { "kobold zombie", S_ZOMBIE, 0, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  347. X          { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  348. X          10, 100, 0, MS_SILENT, M1_HUMANOID | M1_UNDEAD | M1_POIS |
  349. X          M1_POIS_RES | M1_STALK, M2_HOSTILE, C(BROWN) },
  350. X        { "gnome zombie", S_ZOMBIE, 1, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  351. X          { { AT_CLAW, AD_PHYS, 1, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  352. X          10, 100, 0, MS_SILENT, M1_HUMANOID | M1_UNDEAD | M1_POIS |
  353. X          M1_POIS_RES | M1_STALK, M2_HOSTILE, C(HI_MON) },
  354. X        { "orc zombie", S_ZOMBIE, 2, 6, 9, 0, -3,
  355. X          (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  356. X          { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  357. X          15, 150, 0, MS_SILENT, M1_HUMANOID | M1_UNDEAD | M1_POIS_RES |
  358. X          M1_STALK | M1_GREEDY | M1_JEWELS, M2_HOSTILE | M2_ORC, C(BROWN) },
  359. X        { "elf zombie", S_ZOMBIE, 3, 6, 9, 0, -3,
  360. X          (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  361. X          { { AT_CLAW, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  362. X          35, 350, 0, MS_SILENT, M1_HUMANOID | M1_UNDEAD | M1_POIS_RES |
  363. X          M1_STALK | M1_SLEE_RES, M2_HOSTILE | M2_ELF, C(HI_MON) },
  364. X        { "human zombie", S_ZOMBIE, 4, 6, 8, 0, -3,
  365. X          (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  366. X          { { AT_CLAW, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  367. X          40, 400, 0, MS_SILENT,
  368. X          M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK, M2_HOSTILE,
  369. X      C(HI_MON) },
  370. X        { "ettin zombie", S_ZOMBIE, 6, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  371. X          { { AT_CLAW, AD_PHYS, 1, 10 }, { AT_CLAW, AD_PHYS, 1, 10 },
  372. X            NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_SILENT,
  373. X          M1_BIG | M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK,
  374. X          M2_HOSTILE | M2_STRONG, C(BROWN) },
  375. X        { "giant zombie", S_ZOMBIE, 8, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  376. X          { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  377. X            NO_ATTK, NO_ATTK, NO_ATTK }, 75, 750, 0, MS_SILENT,
  378. X          M1_BIG | M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK |
  379. X          M1_JEWELS, M2_HOSTILE | M2_GIANT | M2_STRONG, C(HI_MON) },
  380. X/*      Golems  */
  381. X#ifdef GOLEMS
  382. X        { "straw golem", S_GOLEM, 3, 12, 10, 0, 0, (G_GENO | G_NOCORPSE | 1),
  383. X          { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  384. X            NO_ATTK, NO_ATTK, NO_ATTK }, 10, 0, 0, MS_SILENT,
  385. X          M1_BIG | M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(YELLOW) },
  386. X        { "rope golem", S_GOLEM, 4, 9, 8, 0, 0, (G_GENO | G_NOCORPSE | 1),
  387. X          { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_HUGS, AD_PHYS, 6, 1 },
  388. X            NO_ATTK, NO_ATTK, NO_ATTK }, 20, 0, 0, MS_SILENT,
  389. X          M1_BIG | M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(BROWN) },
  390. X        { "leather golem", S_GOLEM, 6, 6, 6, 0, 0, (G_GENO | G_NOCORPSE | 1),
  391. X          { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  392. X            NO_ATTK, NO_ATTK, NO_ATTK }, 40, 0, 0, MS_SILENT,
  393. X          M1_BIG | M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(HI_LEATHER) },
  394. X        { "wood golem", S_GOLEM, 7, 3, 4, 0, 0, (G_GENO | G_NOCORPSE | 1),
  395. X          { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  396. X          50, 0, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_POIS_RES,
  397. X          M2_HOSTILE | M2_THICK_HIDE, C(HI_WOOD) },
  398. X        { "flesh golem", S_GOLEM, 9, 8, 9, 30, 0, (G_GENO | 1),
  399. X          { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  400. X            NO_ATTK, NO_ATTK, NO_ATTK},
  401. X          60, 600, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_POIS_RES |
  402. X          M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES, M2_HOSTILE | M2_STRONG,
  403. X      C(HI_MON) },
  404. X        { "clay golem", S_GOLEM, 11, 7, 7, 40, 0, (G_GENO | G_NOCORPSE | 1),
  405. X          { { AT_CLAW, AD_PHYS, 3, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  406. X          75, 0, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_POIS_RES,
  407. X          M2_HOSTILE | M2_STRONG | M2_THICK_HIDE, C(BROWN) },
  408. X        { "stone golem", S_GOLEM, 14, 6, 5, 50, 0, (G_GENO | G_NOCORPSE | 1),
  409. X          { { AT_CLAW, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  410. X          90, 0, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_POIS_RES | M1_STON_RES,
  411. X          M2_HOSTILE | M2_STRONG | M2_THICK_HIDE, C(GRAY) },
  412. X        { "iron golem", S_GOLEM, 18, 6, 3, 60, 0, (G_GENO | G_NOCORPSE | 1),
  413. X          { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_BREA, AD_DRST, 4, 6 },
  414. X            NO_ATTK, NO_ATTK, NO_ATTK },
  415. X          100, 0, 0, MS_SILENT, M1_BIG | M1_HUMANOID | M1_POIS |
  416. X          M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES | M1_COLLECT,
  417. X          M2_HOSTILE | M2_STRONG | M2_THICK_HIDE, C(HI_METAL) },
  418. X#endif /* GOLEMS */
  419. X/*      Humans          */
  420. X        { "human", S_HUMAN, 0, 12, 10, 0, 0, G_NOGEN,
  421. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  422. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  423. X          M2_HUMAN | M2_PEACEFUL | M2_STRONG, C(HI_MON) }, /* for corpses */
  424. X        { "wererat", S_HUMAN, 2, 12, 7, 10, -7, 1,
  425. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  426. X          45, 400, 0, MS_SILENT, M1_NOPOLY | M1_HUMANOID | M1_WERE | M1_POIS |
  427. X          M1_REGEN | M1_COLLECT, M2_HOSTILE | M2_HUMAN, C(HI_MON) },
  428. X        { "werejackal", S_HUMAN, 2, 12, 7, 10, -7, 1,
  429. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  430. X          45, 400, 0, MS_BARK, M1_NOPOLY | M1_HUMANOID | M1_WERE | M1_POIS |
  431. X          M1_REGEN | M1_COLLECT, M2_HOSTILE | M2_HUMAN, C(HI_MON) },
  432. X        { "werewolf", S_HUMAN, 5, 12, 6, 20, -7, 1,
  433. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  434. X          45, 400, 0, MS_BARK, M1_NOPOLY | M1_HUMANOID | M1_WERE | M1_POIS |
  435. X          M1_REGEN | M1_COLLECT, M2_HOSTILE | M2_HUMAN, C(HI_MON) },
  436. X#ifdef TOLKIEN
  437. X        { "Woodland-elf", S_HUMAN, 4, 12, 5, 10, 5, (G_GENO | G_SGROUP | 2),
  438. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  439. X          35, 350, 0, MS_HUMANOID, M1_HUMANOID | M1_COLLECT | M1_SLEE_RES,
  440. X          M2_ELF, C(HI_MON) },
  441. X        { "Green-elf", S_HUMAN, 5, 12, 5, 10, 6, (G_GENO | G_SGROUP | 2),
  442. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  443. X          35, 350, 0, MS_HUMANOID, M1_HUMANOID | M1_COLLECT | M1_SLEE_RES,
  444. X          M2_ELF, C(HI_MON) },
  445. X        { "Grey-elf", S_HUMAN, 6, 12, 5, 10, 7, (G_GENO | G_SGROUP | 2),
  446. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  447. X          35, 350, 0, MS_HUMANOID, M1_HUMANOID | M1_COLLECT | M1_SLEE_RES,
  448. X          M2_ELF, C(HI_MON) },
  449. X#endif
  450. X        { "elf-lord", S_HUMAN, 8, 12, 5, 20, 9, (G_GENO | G_SGROUP | 2),
  451. X          { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  452. X            NO_ATTK, NO_ATTK, NO_ATTK },
  453. X          35, 350, 0, MS_HUMANOID, M1_HUMANOID | M1_LORD | M1_COLLECT |
  454. X          M1_SLEE_RES, M2_ELF | M2_STRONG, C(HI_MON) },
  455. X        { "Elvenking", S_HUMAN, 9, 12, 5, 25, 10, (G_GENO | 1),
  456. X          { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4},
  457. X            NO_ATTK, NO_ATTK, NO_ATTK },
  458. X          35, 350, 0, MS_HUMANOID, M1_HUMANOID | M1_PRINCE | M1_COLLECT |
  459. X          M1_SLEE_RES, M2_ELF | M2_STRONG, C(HI_MON) },
  460. X        { "nurse", S_HUMAN, 11, 6, 0, 0, 0, (G_GENO | 3),
  461. X          { { AT_CLAW, AD_HEAL, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  462. X          45, 400, 0, MS_NURSE, M1_NOPOLY | M1_HUMANOID | M1_POIS_RES,
  463. X          M2_HUMAN | M2_HOSTILE, C(HI_MON) },
  464. X        { "shopkeeper", S_HUMAN, 12, 18, 0, 50, 0, G_NOGEN,
  465. X          { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 }, NO_ATTK,
  466. X            NO_ATTK, NO_ATTK }, 45, 400, sizeof(struct eshk), MS_SELL,
  467. X          M1_NOPOLY | M1_HUMANOID | M1_MAGIC | M1_COLLECT,
  468. X          M2_HUMAN | M2_PEACEFUL | M2_STRONG, C(HI_MON) },
  469. X        { "guard", S_HUMAN, 12, 12, -1, 40, 10, G_NOGEN,
  470. X          { { AT_WEAP, AD_PHYS, 4, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  471. X          45, 400, sizeof(struct egd), MS_GUARD,
  472. X          M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  473. X          M2_HUMAN | M2_MERC | M2_PEACEFUL | M2_STRONG, C(HI_MON) },
  474. X#if defined(ALTARS) && defined(THEOLOGY)
  475. X        { "temple priest", S_HUMAN, 12, 12, 0, 50, 1, G_NOGEN,
  476. X          { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
  477. X            { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK },
  478. X          45, 400, sizeof(struct epri), MS_PRIEST, 
  479. X          M1_NOPOLY | M1_HUMANOID | M1_ELEC_RES | M1_COLLECT, 
  480. X          M2_HUMAN | M2_PEACEFUL, C(BRIGHT|WHITE) },
  481. X        { "temple priestess", S_HUMAN, 12, 12, 0, 50, 1, G_NOGEN,
  482. X          { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
  483. X            { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK },
  484. X          45, 400, sizeof(struct epri), MS_PRIEST,
  485. X          M1_NOPOLY | M1_HUMANOID | M1_ELEC_RES | M1_COLLECT | M1_FEM, 
  486. X          M2_HUMAN | M2_PEACEFUL, C(BRIGHT|WHITE) },
  487. X#endif
  488. X#ifdef ARMY
  489. X        { "unarmored soldier", S_HUMAN, 6, 4, 10, 0, -2, G_NOGEN,
  490. X          { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  491. X          45, 400, 0, MS_SOLDIER,
  492. X          M1_NOPOLY | M1_HUMANOID | M1_STALK | M1_COLLECT,
  493. X          M2_HUMAN | M2_MERC | M2_HOSTILE | M2_STRONG, C(GREEN) },
  494. X        { "soldier", S_HUMAN, 6, 4, 3, 0, -2, (G_SGROUP | G_GENO | 1),
  495. X          { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  496. X          45, 400, 0, MS_SOLDIER,
  497. X          M1_NOPOLY | M1_HUMANOID | M1_STALK | M1_COLLECT,
  498. X          M2_HUMAN | M2_MERC | M2_HOSTILE | M2_STRONG, C(GREEN) },
  499. X        { "sergeant", S_HUMAN, 8, 4, 0, 5, -3, (G_SGROUP | G_GENO | 1),
  500. X          { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  501. X          45, 400, 0, MS_SOLDIER,
  502. X          M1_NOPOLY | M1_HUMANOID | M1_STALK | M1_COLLECT,
  503. X          M2_HUMAN | M2_MERC | M2_HOSTILE | M2_STRONG, C(GREEN) },
  504. X        { "lieutenant", S_HUMAN, 10, 4, -2, 15, -4, (G_GENO | 1),
  505. X          { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_WEAP, AD_PHYS, 3, 4 },
  506. X            NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SOLDIER,
  507. X          M1_NOPOLY | M1_HUMANOID | M1_STALK | M1_COLLECT,
  508. X          M2_HUMAN | M2_MERC | M2_HOSTILE | M2_STRONG, C(GREEN) },
  509. X        { "captain", S_HUMAN, 12, 4, -3, 15, -5, (G_GENO | 1),
  510. X          { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 },
  511. X            NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SOLDIER,
  512. X          M1_NOPOLY | M1_HUMANOID | M1_STALK | M1_COLLECT,
  513. X          M2_HUMAN | M2_MERC | M2_HOSTILE | M2_STRONG, C(GREEN) },
  514. X#endif
  515. X        { "Wizard of Yendor", S_HUMAN, 30, 12, -8, 100, -20, G_NOGEN,
  516. X          { { AT_CLAW, AD_SAMU, 2, 12 }, { AT_MAGC, AD_SPEL, 0, 0 },
  517. X            { AT_BITE, AD_CUSS, 0, 0 }, NO_ATTK, NO_ATTK }, 45, 400, PL_NSIZ,
  518. X          MS_CUSS, M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_POIS_RES |
  519. X          M1_FIRE_RES | M1_REGEN | M1_SEE_INVIS | M1_TPORT |
  520. X          M1_TPORT_CONTROL | M1_MAGIC,
  521. X          M2_HUMAN | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_NASTY, C(MAGENTA)
  522. X      },
  523. X#ifdef MEDUSA
  524. X        { "Medusa", S_HUMAN, 20, 12, 2, 50, -15, G_NOGEN | G_UNIQ,
  525. X          { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_GAZE, AD_STON, 0, 0 },
  526. X            { AT_BITE, AD_DRST, 1, 6 }, { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK },
  527. X          45, 400, PL_NSIZ, MS_HISS,
  528. X          M1_NOPOLY | M1_BIG | M1_HUMANOID | M1_POIS | M1_POIS_RES |
  529. X          M1_STON_RES | M1_FEM, M2_HOSTILE | M2_STRONG | M2_PNAME,
  530. X      C(BRIGHT|GREEN) },
  531. X#endif
  532. X#ifdef ORACLE
  533. X        { "oracle", S_HUMAN, 12, 0, 0, 50, 0, G_NOGEN | G_UNIQ,
  534. X          { { AT_NONE, AD_MAGM, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  535. X          45, 400, 0, MS_ORACLE, M1_NOPOLY | M1_HUMANOID | M1_FEM,
  536. X          M2_HUMAN | M2_PEACEFUL, C(HI_MON) },
  537. X#endif
  538. X#ifdef CHARON
  539. X        { "Charon", S_HUMAN, 76, 18, -5, 120, 0,
  540. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  541. X          { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_TUCH, AD_PLYS, 1, 8 },
  542. X            NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, PL_NSIZ, MS_FERRY,
  543. X          M1_NOPOLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES |
  544. X          M1_COLLECT, M2_HUMAN | M2_PEACEFUL, C(WHITE) },
  545. X#endif
  546. X/*      Ghost           */
  547. X        { "ghost", S_GHOST, 10, 3, -5, 50, -5, (G_NOCORPSE | G_NOGEN),
  548. X          { { AT_TUCH, AD_PHYS, 1, 1 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  549. X          45, 0, PL_NSIZ, MS_SILENT, M1_NOPOLY | M1_FLY | M1_WALLWALK |
  550. X          M1_HUMANOID | M1_UNDEAD | M1_STALK | M1_POIS_RES, M2_HOSTILE,
  551. X      C(WHITE)},
  552. X/*      (major) Demons  */
  553. X        { "water demon", S_DEMON, 8, 12,-4, 30, -7, (G_NOCORPSE | G_NOGEN),
  554. X          { { AT_WEAP, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  555. X            { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK },
  556. X          45, 450, 0, MS_SILENT, M1_SWIM | M1_POIS | M1_FIRE_RES |
  557. X          M1_STALK | M1_COLLECT, M2_DEMON | M2_HOSTILE | M2_NASTY, C(BLUE) },
  558. X#ifndef HARD /* generic type */
  559. X        { "demon", S_DEMON, 10, 12,-4, 30, -7, (G_NOCORPSE | 1),
  560. X          { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  561. X            { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  562. X          45, 450, 0, MS_JEER, M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT,
  563. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  564. X#else   /* used in hell for bigger, badder demons! */
  565. X        /* standard demons & devils */
  566. X        { "horned devil", S_DEMON, 6, 9, -5, 50, 11, (G_HELL | G_NOCORPSE | 2),
  567. X          { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  568. X            { AT_BITE, AD_PHYS, 2, 3 }, { AT_STNG, AD_PHYS, 1, 3 }, NO_ATTK },
  569. X          45, 450, 0, MS_SILENT, M1_POIS | M1_FIRE_RES | M1_STALK,
  570. X          M2_DEMON | M2_HOSTILE | M2_NASTY | M2_THICK_HIDE, C(RED) },
  571. X#ifdef SEDUCE
  572. X        { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  573. X          { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  574. X            { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK }, 45, 450, 0, MS_SEDUCE,
  575. X          M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES | M1_STALK | M1_FEM,
  576. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  577. X        { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  578. X          { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  579. X            { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK }, 45, 450, 0, MS_SEDUCE,
  580. X          M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES | M1_STALK,
  581. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  582. X#else
  583. X        { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  584. X          { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  585. X            { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK }, 45, 450, 0, MS_SEDUCE,
  586. X          M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES | M1_STALK | M1_FEM,
  587. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  588. X        { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  589. X          { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  590. X            { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK }, 45, 450, 0, MS_SEDUCE,
  591. X          M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES | M1_STALK,
  592. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  593. X#endif
  594. X        { "erinyes", S_DEMON, 7, 12, 2, 30, 10,
  595. X          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  596. X          { { AT_WEAP, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  597. X          45, 450, 0, MS_SILENT, M1_HUMANOID | M1_POIS | M1_FIRE_RES |
  598. X          M1_STALK | M1_COLLECT | M1_FEM,
  599. X          M2_DEMON | M2_HOSTILE | M2_STRONG | M2_NASTY, C(RED) },
  600. X        { "marilith", S_DEMON, 7, 12, -6, 80, -12, (G_HELL | G_NOCORPSE | 1),
  601. X          { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  602. X            { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  603. X            { AT_WEAP, AD_PHYS, 2, 4 }, }, 45, 450, 0, MS_SILENT, M1_HUMANOID |
  604. X          M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT |
  605. X          M1_FEM, M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  606. X        { "barbed devil", S_DEMON, 8, 12, 0, 35, 8,
  607. X          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  608. X          { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  609. X            { AT_STNG, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK },
  610. X          45, 450, 0, MS_SILENT, M1_POIS | M1_FIRE_RES | M1_STALK,
  611. X          M2_DEMON | M2_HOSTILE | M2_NASTY | M2_THICK_HIDE, C(RED) },
  612. X        { "vrock", S_DEMON, 8, 12, 0, 50, -9,
  613. X          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  614. X          { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  615. X            { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 },
  616. X            { AT_BITE, AD_PHYS, 1, 6 }, },
  617. X          45, 450, 0, MS_SILENT, M1_POIS | M1_FIRE_RES | M1_STALK,
  618. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  619. X        { "hezrou", S_DEMON, 9, 6, -2, 55, -10,
  620. X          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  621. X          { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  622. X            { AT_BITE, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK }, 45, 450, 0,
  623. X          MS_SILENT, M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_STALK,
  624. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  625. X        { "bone devil", S_DEMON, 9, 15, -1, 40, -9,
  626. X          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  627. X          { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_STNG, AD_DRST, 2, 4 },
  628. X            NO_ATTK, NO_ATTK, NO_ATTK }, 45, 450, 0, MS_SILENT,
  629. X          M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT,
  630. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(WHITE) },
  631. X        { "nalfeshnee", S_DEMON, 11, 9, -1, 65, -11, (G_HELL | G_NOCORPSE | 1),
  632. X          { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  633. X            { AT_BITE, AD_PHYS, 2, 4 }, { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK },
  634. X          45, 450, 0, MS_SILENT, M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_STALK,
  635. X          M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  636. X        { "ice devil", S_DEMON, 11, 6, -4, 55, -12, (G_HELL | G_NOCORPSE | 2),
  637. X          { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  638. X            { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_COLD, 3, 4 }, NO_ATTK },
  639. X          45, 450, 0, MS_SILENT, M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  640. X          M1_COLD_RES | M1_STALK, M2_DEMON | M2_HOSTILE | M2_NASTY,
  641. X      C(WHITE) },
  642. X        { "pit fiend", S_DEMON, 13, 6, -3, 65, -13, (G_HELL | G_NOCORPSE | 2),
  643. X          { { AT_WEAP, AD_PHYS, 4, 2 }, { AT_WEAP, AD_PHYS, 4, 2 },
  644. X            { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK }, 45, 450, 0,
  645. X          MS_GROWL, M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_STALK |
  646. X          M1_COLLECT, M2_DEMON | M2_HOSTILE | M2_NASTY, C(RED) },
  647. X        { "balrog", S_DEMON, 16, 5, -2, 75, -14, (G_HELL | G_NOCORPSE | 1),
  648. X          { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  649. X            NO_ATTK, NO_ATTK, NO_ATTK }, 45, 450, 0, MS_SILENT,
  650. X          M1_FLY | M1_BIG | M1_SEE_INVIS | M1_COLLECT | M1_STALK | M1_POIS |
  651. X          M1_FIRE_RES, M2_DEMON | M2_HOSTILE | M2_STRONG | M2_NASTY,
  652. X      C(RED) },
  653. X        /* Named demon lords & princes plus Arch-Devils */
  654. X        { "Juiblex", S_DEMON, 50, 3, -7, 65, -15,
  655. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  656. X          { { AT_ENGL, AD_DISE, 4, 10 }, { AT_SPIT, AD_ACID, 3, 6 },
  657. X            NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_GURGLE,
  658. X          M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_POIS |
  659. X          M1_FIRE_RES | M1_STALK | M1_LORD,
  660. X          M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_AMORPHOUS,
  661. X      C(BRIGHT|GREEN) },
  662. X        { "Yeenoghu", S_DEMON, 56, 18, -5, 80, -15,
  663. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  664. X          { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_WEAP, AD_CONF, 2, 8 },
  665. X            { AT_WEAP, AD_PLYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 }, NO_ATTK },
  666. X          50, 500, PL_NSIZ, MS_ORC, M1_NOPOLY | M1_FLY | M1_SEE_INVIS |
  667. X          M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT | M1_LORD,
  668. X          M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY, C(MAGENTA) },
  669. X        { "Orcus", S_DEMON, 66, 9, -6, 85, -20,
  670. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  671. X          { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_WEAP, AD_PHYS, 3, 6 },
  672. X            { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  673. X            { AT_STNG, AD_DRST, 2, 4 }, }, 50, 500, PL_NSIZ, MS_ORC,
  674. X          M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  675. X          M1_STALK | M1_COLLECT | M1_PRINCE,
  676. X          M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY, C(MAGENTA) },
  677. X        { "Geryon", S_DEMON, 72, 3, -3, 75, 15,
  678. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  679. X          { { AT_CLAW, AD_PHYS, 3, 6 }, { AT_CLAW, AD_PHYS, 3, 6 },
  680. X            { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ,
  681. X          MS_JEER, M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  682. X          M1_STALK | M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY,
  683. X      C(MAGENTA)},
  684. X        { "Dispater", S_DEMON, 78, 15, -2, 80, 15,
  685. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  686. X          { { AT_WEAP, AD_PHYS, 4, 6 }, { AT_MAGC, AD_SPEL, 6, 6 },
  687. X            NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER,
  688. X          M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS |
  689. X          M1_FIRE_RES | M1_STALK | M1_COLLECT | M1_PRINCE,
  690. X          M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY, C(MAGENTA) },
  691. X        { "Baalzebub", S_DEMON, 89, 9, -5, 85, 20,
  692. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  693. X          { { AT_BITE, AD_DRST, 2, 6 }, { AT_GAZE, AD_STUN, 2, 6 },
  694. X            NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER,
  695. X          M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  696. X          M1_STALK | M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY,
  697. X      C(MAGENTA)},
  698. X        { "Asmodeus", S_DEMON, 105, 12, -7, 90, 20,
  699. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  700. X          { { AT_CLAW, AD_PHYS, 4, 4 }, { AT_MAGC, AD_COLD, 6, 6 },
  701. X            NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER,
  702. X          M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS |
  703. X          M1_FIRE_RES | M1_COLD_RES | M1_STALK | M1_PRINCE,
  704. X          M2_DEMON | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  705. X      C(MAGENTA) },
  706. X        { "Demogorgon", S_DEMON, 106, 15, -8, 95, -20,
  707. X          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  708. X          { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_STNG, AD_DRLI, 1, 4 },
  709. X            { AT_CLAW, AD_DISE, 1, 6 }, { AT_CLAW, AD_DISE, 1, 6 },
  710. X            NO_ATTK }, 50, 500, PL_NSIZ, MS_GROWL, M1_NOPOLY | M1_FLY |
  711. X          M1_SEE_INVIS | M1_NOHANDS | M1_POIS | M1_FIRE_RES | M1_STALK |
  712. X          M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY,
  713. X      C(MAGENTA)},
  714. X#endif
  715. X#ifdef MAIL
  716. X# ifdef VMS
  717. X        { "broadcast daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
  718. X          { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0,
  719. X          MS_SILENT, M1_NOPOLY | M1_FLY | M1_SWIM | M1_SEE_INVIS |
  720. X          M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES |
  721. X          M1_STALK, M2_PEACEFUL, C(BRIGHT|BLUE) },
  722. X# else
  723. X        { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
  724. X          { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0,
  725. X          MS_SILENT, M1_NOPOLY | M1_FLY | M1_SWIM | M1_SEE_INVIS |
  726. X          M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES |
  727. X          M1_STALK, M2_PEACEFUL, C(BRIGHT|BLUE) },
  728. X# endif
  729. X/* Neither rain nor sleet nor gloom of night shall stay this courier... */
  730. X#endif
  731. X        { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE),
  732. X          { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  733. X          40, 400, 0, MS_DJINNI,
  734. X          M1_NOPOLY | M1_FLY | M1_POIS | M1_STALK | M1_COLLECT, 0,
  735. X      C(YELLOW) },
  736. X/*      eels            */
  737. X        { "giant eel", S_EEL, 5, 9, -1, 0, 0, (G_GENO | G_NOGEN),
  738. X          { { AT_BITE, AD_PHYS, 3, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  739. X            NO_ATTK, NO_ATTK, NO_ATTK }, 10, 250, 0, MS_SILENT,
  740. X          M1_BIG | M1_VSMALL | M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_NOPOLY |
  741. X          M1_EGGS, M2_HOSTILE | M2_NOLIMBS | M2_CARNIVORE, C(CYAN) },
  742. X        { "electric eel", S_EEL, 7, 10, -3, 0, 0, (G_GENO | G_NOGEN),
  743. X          { { AT_BITE, AD_ELEC, 4, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  744. X          NO_ATTK, NO_ATTK, NO_ATTK }, 10, 250, 0, MS_SILENT,
  745. X          M1_BIG | M1_VSMALL | M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_NOPOLY |
  746. X          M1_EGGS | M1_ELEC_RES, M2_HOSTILE | M2_NOLIMBS | M2_CARNIVORE,
  747. X      C(BLUE)},
  748. X/*      kraken  */
  749. X        { "kraken", S_EEL, 20, 3, 6, 0, -3, (G_GENO | G_NOGEN),
  750. X          { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  751. X            { AT_HUGS, AD_WRAP, 2, 6 }, { AT_BITE, AD_PHYS, 5, 4 }, NO_ATTK },
  752. X          1, 10, 0, MS_SILENT,
  753. X          M1_BIG | M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_NOPOLY,
  754. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  755. X/*      chameleon       */
  756. X        { "chameleon", S_CHAMELEON, 6, 5, 6, 10, 0, (G_GENO | 2),
  757. X          { { AT_BITE, AD_PHYS, 4, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  758. X          10, 100, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL,
  759. X          M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  760. X
  761. X/*      character classes */
  762. X        { "archeologist", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  763. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  764. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  765. X          M2_HUMAN | M2_STRONG | M2_TUNNEL | M2_NEEDPICK, C(HI_MON) },
  766. X        { "barbarian", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
  767. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  768. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT |
  769. X          M1_POIS_RES, M2_HUMAN | M2_STRONG, C(HI_MON) },
  770. X        { "caveman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  771. X          { {AT_WEAP, AD_PHYS, 2, 4}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  772. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  773. X          M2_HUMAN | M2_STRONG | M2_CARNIVORE, C(HI_MON) },
  774. X        { "cavewoman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  775. X          { {AT_WEAP, AD_PHYS, 2, 4}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  776. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_FEM,
  777. X          M2_HUMAN | M2_STRONG | M2_CARNIVORE, C(HI_MON) },
  778. X        /* Note: players who are elves still get normal carrying capacity,
  779. X         * even though this is strictly speaking inconsistent.
  780. X         */
  781. X        { "elf", S_HUMAN, 1, 12, 10, 2, 3, G_NOGEN,
  782. X          { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  783. X          35, 350, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT |
  784. X          M1_SLEE_RES | M1_SEE_INVIS, M2_ELF | M2_STRONG, C(HI_MON) },
  785. X        { "healer", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  786. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  787. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT |
  788. X          M1_POIS_RES, M2_HUMAN | M2_STRONG, C(HI_MON) },
  789. X        { "knight", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  790. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  791. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  792. X          M2_HUMAN | M2_STRONG, C(HI_MON) },
  793. X        { "priest", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  794. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  795. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  796. X          M2_HUMAN | M2_STRONG, C(HI_MON) },
  797. X        { "priestess", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  798. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  799. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_FEM,
  800. X          M2_HUMAN | M2_STRONG, C(HI_MON) },
  801. X        { "rogue", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
  802. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  803. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT |
  804. X          M1_GREEDY, M2_HUMAN | M2_STRONG, C(HI_MON) },
  805. X        { "samurai", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  806. X          { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  807. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  808. X          M2_HUMAN | M2_STRONG, C(HI_MON) },
  809. X        { "tourist", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  810. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  811. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  812. X          M2_HUMAN | M2_STRONG, C(HI_MON) },
  813. X        { "valkyrie", S_HUMAN, 1, 10, 10, 1, -1, G_NOGEN,
  814. X          { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  815. X          45, 400, 0, MS_HUMANOID, M1_NOPOLY | M1_HUMANOID | M1_COLLECT | 
  816. X          M1_COLD_RES | M1_FEM, M2_HUMAN | M2_STRONG, C(HI_MON) },
  817. X        { "wizard", S_HUMAN, 1, 10, 10, 3, 0, G_NOGEN,
  818. X          { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  819. X          45, 400, 0, MS_HUMANOID,
  820. X          M1_NOPOLY | M1_HUMANOID | M1_MAGIC | M1_COLLECT,
  821. X          M2_HUMAN | M2_STRONG, C(HI_MON) },
  822. X
  823. X/*      ARRAY TERMINATOR        */
  824. X        { "", 0, 0, 0, 0, 0, 0, 0,
  825. X          { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  826. X          0, 0, 0, 0, 0, 0, C(0) }
  827. X};
  828. X#endif /* !SPLITMON_1 */
  829. END_OF_FILE
  830. if test 47579 -ne `wc -c <'src/monst.c2'`; then
  831.     echo shar: \"'src/monst.c2'\" unpacked with wrong size!
  832. fi
  833. # end of 'src/monst.c2'
  834. echo shar: End of archive 11 \(of 11\).
  835. cp /dev/null ark11isdone
  836. MISSING=""
  837. for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
  838.     if test ! -f ark${I}isdone ; then
  839.     MISSING="${MISSING} ${I}"
  840.     fi
  841. done
  842. if test "${MISSING}" = "" ; then
  843.     echo You have unpacked all 11 archives.
  844.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  845. else
  846.     echo You still need to unpack the following archives:
  847.     echo "        " ${MISSING}
  848. fi
  849. ##  End of shell archive.
  850. exit 0
  851.